home *** CD-ROM | disk | FTP | other *** search
/ The Fatted Calf / The Fatted Calf.iso / Applications / Games / NeXTmj / Source / GameTileArray.cc < prev    next >
Text File  |  1991-03-09  |  6KB  |  201 lines

  1.  
  2. /*
  3.  * This object provides an array of Game Tile objects.
  4.  *    In the application there is only one object of this class.
  5.  *
  6.  $Author$
  7.  $Header$
  8.  *
  9.  $Log$
  10.  */
  11.  
  12.  
  13. #import    "GameTileArray.h"
  14.  
  15. #import <EastWindTile.h>
  16. #import <WestWindTile.h>
  17. #import <NorthWindTile.h>
  18. #import <SouthWindTile.h>
  19. #import <WinterSeasonTile.h>
  20. #import <SpringSeasonTile.h>
  21. #import <SummerSeasonTile.h>
  22. #import <AutumnSeasonTile.h>
  23. #import <CircleOneTile.h>
  24. #import <CircleTwoTile.h>
  25. #import <CircleThreeTile.h>
  26. #import <CircleFourTile.h>
  27. #import <CircleFiveTile.h>
  28. #import <CircleSixTile.h>
  29. #import <CircleSevenTile.h>
  30. #import <CircleEightTile.h>
  31. #import <CircleNineTile.h>
  32. #import <BambooOneTile.h>
  33. #import <BambooTwoTile.h>
  34. #import <BambooThreeTile.h>
  35. #import <BambooFourTile.h>
  36. #import <BambooFiveTile.h>
  37. #import <BambooSixTile.h>
  38. #import <BambooSevenTile.h>
  39. #import <BambooEightTile.h>
  40. #import <BambooNineTile.h>
  41. #import <CharacterOneTile.h>
  42. #import <CharacterTwoTile.h>
  43. #import <CharacterThreeTile.h>
  44. #import <CharacterFourTile.h>
  45. #import <CharacterFiveTile.h>
  46. #import <CharacterSixTile.h>
  47. #import <CharacterSevenTile.h>
  48. #import <CharacterEightTile.h>
  49. #import <CharacterNineTile.h>
  50. #import <WhiteTile.h>
  51. #import <RedTile.h>
  52. #import    <GreenTile.h>
  53. #import <BambooTile.h>
  54. #import <PlumTile.h>
  55. #import <OrchidTile.h>
  56. #import <ChrysanthemumTile.h>
  57.  
  58. extern "C" {
  59. #import    <assert.h>
  60. }
  61.  
  62.  
  63. GameTileArray::GameTileArray( void ) {
  64.  
  65.     int                i = 0, j;
  66.     
  67.  
  68.     assert( NUMBER_OF_TILES == 144 );
  69.  
  70.                                                 // Build the table of Game Tiles.
  71.                                                 //    (Could be done much more efficiently 
  72.                                                 //    but C++ doesn't support aggregate
  73.                                                 //    initialization.)
  74.     
  75.     for( j = 0; j < NUMBER_OF_EAST_WIND; ++j, ++i )
  76.         game_tiles[ i ] = new EastWindTile;
  77.     for( j = 0; j < NUMBER_OF_WEST_WIND; ++j, ++i )
  78.         game_tiles[ i ] = new WestWindTile;
  79.     for( j = 0; j < NUMBER_OF_NORTH_WIND; ++j, ++i )
  80.         game_tiles[ i ] = new NorthWindTile;
  81.     for( j = 0; j < NUMBER_OF_SOUTH_WIND; ++j, ++i )
  82.         game_tiles[ i ] = new SouthWindTile;
  83.     for( j = 0; j < NUMBER_OF_WINTER_SEASON; ++j, ++i )
  84.         game_tiles[ i ] = new WinterSeasonTile;
  85.     for( j = 0; j < NUMBER_OF_SPRING_SEASON; ++j, ++i )
  86.         game_tiles[ i ] = new SpringSeasonTile;
  87.     for( j = 0; j < NUMBER_OF_SUMMER_SEASON; ++j, ++i )
  88.         game_tiles[ i ] = new SummerSeasonTile;
  89.     for( j = 0; j < NUMBER_OF_AUTUMN_SEASON; ++j, ++i )
  90.         game_tiles[ i ] = new AutumnSeasonTile;
  91.     for( j = 0; j < NUMBER_OF_CIRCLE_1; ++j, ++i )
  92.         game_tiles[ i ] = new CircleOneTile;
  93.     for( j = 0; j < NUMBER_OF_CIRCLE_2; ++j, ++i )
  94.         game_tiles[ i ] = new CircleTwoTile;
  95.     for( j = 0; j < NUMBER_OF_CIRCLE_3; ++j, ++i )
  96.         game_tiles[ i ] = new CircleThreeTile;
  97.     for( j = 0; j < NUMBER_OF_CIRCLE_4; ++j, ++i )
  98.         game_tiles[ i ] = new CircleFourTile;
  99.     for( j = 0; j < NUMBER_OF_CIRCLE_5; ++j, ++i )
  100.         game_tiles[ i ] = new CircleFiveTile;
  101.     for( j = 0; j < NUMBER_OF_CIRCLE_6; ++j, ++i )
  102.         game_tiles[ i ] = new CircleSixTile;
  103.     for( j = 0; j < NUMBER_OF_CIRCLE_7; ++j, ++i )
  104.         game_tiles[ i ] = new CircleSevenTile;
  105.     for( j = 0; j < NUMBER_OF_CIRCLE_8; ++j, ++i )
  106.         game_tiles[ i ] = new CircleEightTile;
  107.     for( j = 0; j < NUMBER_OF_CIRCLE_9; ++j, ++i )
  108.         game_tiles[ i ] = new CircleNineTile;
  109.     for( j = 0; j < NUMBER_OF_BAMBOO_1; ++j, ++i )
  110.         game_tiles[ i ] = new BambooOneTile;
  111.     for( j = 0; j < NUMBER_OF_BAMBOO_2; ++j, ++i )
  112.         game_tiles[ i ] = new BambooTwoTile;
  113.     for( j = 0; j < NUMBER_OF_BAMBOO_3; ++j, ++i )
  114.         game_tiles[ i ] = new BambooThreeTile;
  115.     for( j = 0; j < NUMBER_OF_BAMBOO_4; ++j, ++i )
  116.         game_tiles[ i ] = new BambooFourTile;
  117.     for( j = 0; j < NUMBER_OF_BAMBOO_5; ++j, ++i )
  118.         game_tiles[ i ] = new BambooFiveTile;
  119.     for( j = 0; j < NUMBER_OF_BAMBOO_6; ++j, ++i )
  120.         game_tiles[ i ] = new BambooSixTile;
  121.     for( j = 0; j < NUMBER_OF_BAMBOO_7; ++j, ++i )
  122.         game_tiles[ i ] = new BambooSevenTile;
  123.     for( j = 0; j < NUMBER_OF_BAMBOO_8; ++j, ++i )
  124.         game_tiles[ i ] = new BambooEightTile;
  125.     for( j = 0; j < NUMBER_OF_BAMBOO_9; ++j, ++i )
  126.         game_tiles[ i ] = new BambooNineTile;
  127.     for( j = 0; j < NUMBER_OF_CHARACTER_1; ++j, ++i )
  128.         game_tiles[ i ] = new CharacterOneTile;
  129.     for( j = 0; j < NUMBER_OF_CHARACTER_2; ++j, ++i )
  130.         game_tiles[ i ] = new CharacterTwoTile;
  131.     for( j = 0; j < NUMBER_OF_CHARACTER_3; ++j, ++i )
  132.         game_tiles[ i ] = new CharacterThreeTile;
  133.     for( j = 0; j < NUMBER_OF_CHARACTER_4; ++j, ++i )
  134.         game_tiles[ i ] = new CharacterFourTile;
  135.     for( j = 0; j < NUMBER_OF_CHARACTER_5; ++j, ++i )
  136.         game_tiles[ i ] = new CharacterFiveTile;
  137.     for( j = 0; j < NUMBER_OF_CHARACTER_6; ++j, ++i )
  138.         game_tiles[ i ] = new CharacterSixTile;
  139.     for( j = 0; j < NUMBER_OF_CHARACTER_7; ++j, ++i )
  140.         game_tiles[ i ] = new CharacterSevenTile;
  141.     for( j = 0; j < NUMBER_OF_CHARACTER_8; ++j, ++i )
  142.         game_tiles[ i ] = new CharacterEightTile;
  143.     for( j = 0; j < NUMBER_OF_CHARACTER_9; ++j, ++i )
  144.         game_tiles[ i ] = new CharacterNineTile;
  145.     for( j = 0; j < NUMBER_OF_RED; ++j, ++i )
  146.         game_tiles[ i ] = new RedTile;
  147.     for( j = 0; j < NUMBER_OF_GREEN; ++j, ++i )
  148.         game_tiles[ i ] = new GreenTile;
  149.     for( j = 0; j < NUMBER_OF_WHITE; ++j, ++i )
  150.         game_tiles[ i ] = new WhiteTile;
  151.     for( j = 0; j < NUMBER_OF_BAMBOO; ++j, ++i )
  152.         game_tiles[ i ] = new BambooTile;
  153.     for( j = 0; j < NUMBER_OF_PLUM; ++j, ++i )
  154.         game_tiles[ i ] = new PlumTile;
  155.     for( j = 0; j < NUMBER_OF_ORCHID; ++j, ++i )
  156.         game_tiles[ i ] = new OrchidTile;
  157.     for( j = 0; j < NUMBER_OF_MUM; ++j, ++i )
  158.         game_tiles[ i ] = new ChrysanthemumTile;
  159.     assert( i == NUMBER_OF_TILES );
  160. }
  161.  
  162.  
  163. GameTileArray::~GameTileArray( void ) {
  164.  
  165.     
  166.     for( int i = 0; i < NUMBER_OF_TILES; ++i )
  167.         delete game_tiles[ i ];
  168. }
  169.  
  170.  
  171. GameTile& GameTileArray::operator[]( int loc ) {
  172.  
  173.  
  174.  
  175.     assert( loc >= 0 && loc < NUMBER_OF_TILES );
  176.     return *game_tiles[ loc ];
  177. }
  178.  
  179.  
  180. void GameTileArray::swap( int i, int j) {
  181.  
  182.  
  183.     GameTile*    temp;
  184.     
  185.     
  186.     assert( i >= 0 && i < NUMBER_OF_TILES );
  187.     assert( j >= 0 && j < NUMBER_OF_TILES );
  188.  
  189.     temp = game_tiles[ j ];
  190.     game_tiles[ j ] = game_tiles[ i ];
  191.     game_tiles[ i ] = temp;
  192. }
  193.  
  194.  
  195. int GameTileArray::size( void ) {
  196.  
  197.  
  198.     return NUMBER_OF_TILES;
  199. }
  200.  
  201.